<?php

use Laravel\Lumen\Testing\DatabaseMigrations;
use Laravel\Lumen\Testing\DatabaseTransactions;

class ExampleTestDemo extends TestCase
{
	/**
	 * 获取用户token
	 * @return mixed
	 */
    public function getUserTokenProvider() {
//		$this->post('/back/login', [
//			'userName'	=>	'18888888888',
//			'userPwd'	=>	'123456'
//		]);
//		$userLogin = json_decode($this->response->getContent(), true);
//		$token = $userLogin['data']['token'];
//		return $token;
	}

//	public function testExample1()
//	{
//		$token = $this->getUserTokenProvider();
//		$this->post('/back/login/get_user_info',['SC-API-TOKEN'=>	$token],[])->seeJson([
//			"status"	=>	"YES",
//			'code'	=>	200
//		]);
//	}

    /**
     * 所有的测试用例执行前执行（本测试文件执行期间只会执行一次）
     */
    public static function setUpBeforeClass() : void
    {
//        fwrite(STDOUT, __METHOD__ . "\n");
    }

    /**
     * 每次测试方法执行前执行一次（注意有多少个测试用例就会执行多少次，因为每个测试用例方法执行都是一个全新的类，然后就会初始化执行此方法）
     */
    protected function setUp() : void
    {
//        fwrite(STDOUT, __METHOD__ . "\n");
    }

    /**
     * 每次测试方法执行前执行一次,在setUp之后
     */
    protected function assertPreConditions() : void
    {
//        fwrite(STDOUT, __METHOD__ . "\n");
    }

    /**
     * 每次测试方法执行后执行一次,在tearDown之后
     */
    protected function assertPostConditions() : void
    {
//        fwrite(STDOUT, __METHOD__ . "\n");
    }

    /**
     * 本次测试方法执行完成后执行，主要用于释放资源
     */
    protected function tearDown() : void
    {
//        fwrite(STDOUT, __METHOD__ . "\n");
    }

    /**
     * 所有的测试用例执行后执行（本测试文件执行期间只会执行一次）
     */
    public static function tearDownAfterClass() : void
    {
//        fwrite(STDOUT, __METHOD__ . "\n");
    }

    /**
     * 断言失败的时候调用
     * @param Throwable $e
     * @throws Throwable
     */
    protected function onNotSuccessfulTest(Throwable $e) : void
    {
//        fwrite(STDOUT, __METHOD__ . "\n");
//        throw $e;
    }
}
